<?php

Class Tool_cache extends Core {
    
    function __construct() {
        
        parent::__construct_admin();
        
        if (!$this->usr->check_rights('admin')) {
            
            show_error('Нет доступа!!!');
        }
    }
    
    
    /**
     * Страница отображения инструмента
     */
    function index() {
        
        $this->load->helper('form');
        $this->load->helper('number');
        $this->load->helper('file');
        
        //Загрузка папок кэша
        $folders = dir(APPPATH.'cache/');
        $data['folders'] = array();
        
        while (false !== ($folder = $folders->read())) {
          
            if($folder != '.' && $folder != '..' && !strpos($folder, '.')) {
                
                $data['folders'][$folder] = $folder;
            }          
        }
        $folders->close();
        
        //Сколько места занимает кэш
        $files = get_dir_file_info(APPPATH.'cache/'); $bytes = 0; $count = 0;
        
        foreach($files as $row) {
            
            $bytes += $row['size'];
            $count ++;
        }
        
        $data['space_free'] = byte_format(disk_free_space(APPPATH.'cache/'));
        $data['space_totla'] = byte_format($bytes);
        $data['space_count'] = $count;
        
        parent::render($data, 'tool_cache/index', true);
    }
    
    
    /**
     * Удаление кэша ядра
     */
    function core() {
        
        Cache::clearGroup('core');
        Cache::disable();
        
        parent::render('Кэш ядра очищен', '', true);
    }
    
    
    /**
     * Удаление всего кэша
     */
    function all() {
        
        Cache::claerAll();
        Cache::disable();
        
        parent::render('Весь кэш очищен', '', true);
    }
    
    
    /**
     * Удаление папок кэша
     */
    function by_folder() {
        
        $folders = $this->input->post('folders');
        
        if (!is_array($folders)) {
            
            $folders = array($folders);
        }
        
        foreach($folders as $row) {
            
            Cache::clearGroup($row);
        }
        
        Cache::disable();
        
        parent::render('Кэш папок очищен', '', true);
    }
}